//
//  main.c
//  局部变量与全局变量
//
//  Created by ws on 2017/7/25.
//  Copyright © 2017年 王松. All rights reserved.
//

#include <stdio.h>

/**
局部变量:
 概念:定义在函数内部的变量(定义在函数内部的变量以及函数的形参称为局部变量)
    定义格式:变量类型 变量名称;
    作用域:从定义的那一行开始到所在的代码块结束
    生命周期:从代码执行到定义的那一行开始,到其所在的代码块的结束位置
    特点:相同的代码块中不可以有同名的变量
        不同的代码中可以有相同的变量,内部的变量会覆盖外部定义的变量
全局变量：
    概念:定义在函数外部变量
    定义:变量类型 变量名称 = 值;
    声明:变量类型 变量名称;
    特点:1、不可以重复定义,但可以重复声明
         2、局部变量可以与全局变量同名,在局部变量的作用域范围内,那么局部变量会覆盖全局变量
         3、如果没有定义仅有声明,系统自动给它定义并将其初始化为0
    作用域:从定义的那一行开始,直到文件结束
    生命周期:从程序启动开始,直到程序退出才消亡
 */
int num;//声明(可以重复声明)
int num;
int num = 0;//定义(不可以重复定义)
//int num = 20;
int main(int argc, const char * argv[]) {
    printf("num = %d\n",num);//0
    int num = 20;
    printf("num = %d\n",num);//20
    {
        num = 40;
        int num = 10;
        printf("num = %d\n",num);//10
        num = 30;
    }
    printf("num = %d\n",num);//40
    return 0;
}
